package com.lekang.system.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.lekang.common.annotation.Excel;
import com.lekang.common.core.domain.BaseEntity;

/**
 * 审批记录对象 accraditation_record
 * 
 * @author zihao
 * @date 2025-10-18
 */
public class AccraditationRecord extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Long id;

    /** 审批意见 */
    @Excel(name = "审批意见")
    private String opinion;

    /** 审批类型(1:退住,2:请假,3:入住) */
    @Excel(name = "审批类型(1:退住,2:请假,3:入住)")
    private Long type;

    /** 完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date finishTime;

    /** 审批人id */
    @Excel(name = "审批人id")
    private Long approverId;

    /** 审批人 */
    @Excel(name = "审批人")
    private String approverName;

    /** 审批人角色 */
    @Excel(name = "审批人角色")
    private String approverNameRole;

    /** 下一个审核人id */
    @Excel(name = "下一个审核人id")
    private Long nextApproverId;

    /** 下一个审核人 */
    @Excel(name = "下一个审核人")
    private String nextApprover;

    /** 下一个审核人角色 */
    @Excel(name = "下一个审核人角色")
    private String nextApproverRole;

    /** 业务id */
    @Excel(name = "业务id")
    private Long bussniessId;

    /** 当前操作步骤描述 */
    @Excel(name = "当前操作步骤描述")
    private String currentStep;

    /** 下一步操作描述 */
    @Excel(name = "下一步操作描述")
    private String nextStep;

    /** 审核状态(1:通过,2:拒绝,3:驳回,4:撤回,5:撤销) */
    @Excel(name = "审核状态(1:通过,2:拒绝,3:驳回,4:撤回,5:撤销)")
    private Long auditStatus;

    /** 审核步骤 */
    @Excel(name = "审核步骤")
    private Long stepNo;

    /** 处理类型（0:已审批，1：已处理） */
    @Excel(name = "处理类型", readConverterExp = "0=:已审批，1：已处理")
    private Long handleType;

    /** 额外字段1 */
    @Excel(name = "额外字段1")
    private String extraField1;

    /** 额外字段2 */
    @Excel(name = "额外字段2")
    private String extraField2;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setOpinion(String opinion) 
    {
        this.opinion = opinion;
    }

    public String getOpinion() 
    {
        return opinion;
    }

    public void setType(Long type) 
    {
        this.type = type;
    }

    public Long getType() 
    {
        return type;
    }

    public void setFinishTime(Date finishTime) 
    {
        this.finishTime = finishTime;
    }

    public Date getFinishTime() 
    {
        return finishTime;
    }

    public void setApproverId(Long approverId) 
    {
        this.approverId = approverId;
    }

    public Long getApproverId() 
    {
        return approverId;
    }

    public void setApproverName(String approverName) 
    {
        this.approverName = approverName;
    }

    public String getApproverName() 
    {
        return approverName;
    }

    public void setApproverNameRole(String approverNameRole) 
    {
        this.approverNameRole = approverNameRole;
    }

    public String getApproverNameRole() 
    {
        return approverNameRole;
    }

    public void setNextApproverId(Long nextApproverId) 
    {
        this.nextApproverId = nextApproverId;
    }

    public Long getNextApproverId() 
    {
        return nextApproverId;
    }

    public void setNextApprover(String nextApprover) 
    {
        this.nextApprover = nextApprover;
    }

    public String getNextApprover() 
    {
        return nextApprover;
    }

    public void setNextApproverRole(String nextApproverRole) 
    {
        this.nextApproverRole = nextApproverRole;
    }

    public String getNextApproverRole() 
    {
        return nextApproverRole;
    }

    public void setBussniessId(Long bussniessId) 
    {
        this.bussniessId = bussniessId;
    }

    public Long getBussniessId() 
    {
        return bussniessId;
    }

    public void setCurrentStep(String currentStep) 
    {
        this.currentStep = currentStep;
    }

    public String getCurrentStep() 
    {
        return currentStep;
    }

    public void setNextStep(String nextStep) 
    {
        this.nextStep = nextStep;
    }

    public String getNextStep() 
    {
        return nextStep;
    }

    public void setAuditStatus(Long auditStatus) 
    {
        this.auditStatus = auditStatus;
    }

    public Long getAuditStatus() 
    {
        return auditStatus;
    }

    public void setStepNo(Long stepNo) 
    {
        this.stepNo = stepNo;
    }

    public Long getStepNo() 
    {
        return stepNo;
    }

    public void setHandleType(Long handleType) 
    {
        this.handleType = handleType;
    }

    public Long getHandleType() 
    {
        return handleType;
    }

    public void setExtraField1(String extraField1) 
    {
        this.extraField1 = extraField1;
    }

    public String getExtraField1() 
    {
        return extraField1;
    }

    public void setExtraField2(String extraField2) 
    {
        this.extraField2 = extraField2;
    }

    public String getExtraField2() 
    {
        return extraField2;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("opinion", getOpinion())
            .append("type", getType())
            .append("finishTime", getFinishTime())
            .append("approverId", getApproverId())
            .append("approverName", getApproverName())
            .append("approverNameRole", getApproverNameRole())
            .append("nextApproverId", getNextApproverId())
            .append("nextApprover", getNextApprover())
            .append("nextApproverRole", getNextApproverRole())
            .append("bussniessId", getBussniessId())
            .append("currentStep", getCurrentStep())
            .append("nextStep", getNextStep())
            .append("auditStatus", getAuditStatus())
            .append("stepNo", getStepNo())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("createBy", getCreateBy())
            .append("updateBy", getUpdateBy())
            .append("handleType", getHandleType())
            .append("extraField1", getExtraField1())
            .append("extraField2", getExtraField2())
            .toString();
    }
}
